package org.linlinjava.litemall.core.util;

import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 封装各种生成唯一性ID算法的工具类.
 *
 * @author aulbrother
 * @version 2013-01-15
 */
public class IdGen{
    private static int generateCount = 0;
    private static final int MAX_GENERATE_COUNT = 999;

    /**
     * 单例模式生成唯一编号
     *
     * @return 唯一编号
     */
    public static synchronized String getUniqueString(){
        if(generateCount > MAX_GENERATE_COUNT){
            generateCount = 0;
        }
        // 生成时间串
        String dateStr = new SimpleDateFormat("yyMMddHHmmss").format(new Date());
        // 格式化数字 生成 00001格式
        DecimalFormat df = new DecimalFormat("0000");
        String formatCount = df.format(generateCount);

        generateCount++;

        return dateStr + formatCount;
    }
}
